package br.fatec.ppi;

import br.fatec.ppi.entities.Student;
import br.fatec.ppi.entities.student.StudentFacade;
import java.util.List;
import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        int op;
        Scanner in = new Scanner(System.in);
        StudentFacade studentFacade = new StudentFacade();

        do {
            System.out.println("(1)Cadastrar aluno");
            System.out.println("(2)Pesquisar aluno por nome");
            System.out.println("(3)Pesquisar aluno por nome completo");
            System.out.println("(4)Pesquisar aluno por idade");
            System.out.println("(5)Pesquisar aluno por faixa de idade");
            System.out.println("(6)Sair");
            System.out.print("Opção: ");

            op = in.nextInt();

            switch (op) {
                case 1:
                    Student aluno = new Student();
                    System.out.print("Nome: ");
                    aluno.setName(in.next());
                    System.out.print("Id: ");
                    aluno.setId(in.nextInt());
                    System.out.print("Idade: ");
                    aluno.setAge(in.nextInt());
                    studentFacade.Save(aluno);
                    break;

                case 2:
                    System.out.print("Nome: ");
                    imprimeLista(studentFacade.SearchByName(in.next()));
                    break;

                case 3:
                    System.out.print("Nome completo: ");
                    imprimeLista(studentFacade.SearchByFullName(in.next()));
                    break;

                case 4:
                    System.out.print("Idade: ");
                    imprimeLista(studentFacade.SearchByAge(in.nextInt()));
                    break;

                case 5:
                    System.out.print("Idade maior que: ");
                    int age1 = in.nextInt();
                    System.out.print("Idade menor que: ");
                    int age2 = in.nextInt();
                    imprimeLista(studentFacade.SerchByRangeOfAge(age1, age2));
                    break;

                case 6:
                    break;

                default:
                    System.out.print("Opção inválido");

            }
        } while (op != 6);
    }

    public static void imprimeLista(List<Student> students) {
        for (Student student : students) {
            System.out.println("Nome: " + student.getName());
        }
    }
}